Las redes neuronales tradicionales (MLP, CNN) asumen que las entradas y salidas son independientes.
El problema: ¿Cómo procesamos datos donde el orden importa?
Traducción de idiomas (La gramática depende del contexto previo).
Audio y Voz (La onda sonora es continua).
Series de Tiempo (El valor de hoy depende de ayer).
Genómica (Secuencias de ADN).
La Celda Recurrente (RNN Cell)
La diferencia fundamental es la memoria. La RNN procesa la entrada actual (\(x_t\)) considerando el estado anterior (\(a_{t-1}\)).
Figura 1
Formulación Matemática
\[
% Definición de colores semánticos (Modelo HTML para compatibilidad)
\newcommand{\cState}[1]{\color[HTML]{D35400}{#1}}
\newcommand{\cWeight}[1]{\color[HTML]{C0392B}{#1}}
\newcommand{\cInput}[1]{\color[HTML]{00796B}{#1}}
\]
Analicemos las ecuaciones clave utilizando el código de color:
\[
a_t = g_1(W_{aa}a_{t-1} + W_{ax}x_t + b_a)
\]
\[
\hat{y}_t = g_2(W_{ya}a_t + b_y)
\]
Nota
\(\textcolor{#D35400}{a_t}\): Estado oculto (Hidden State). Es la “memoria” del paso \(t\).
\(\textcolor{#C0392B}{W_{ax}, W_{aa}, W_{ya}}\): Pesos compartidos. Son los mismos para cada paso de tiempo.
\(g_1\): Usualmente tanh o ReLU.
\(g_2\): Usualmente Softmax (clasificación) o Lineal (regresión).
Desenrollando en el Tiempo (Unrolling)
Una RNN es simplemente la misma celda ejecutada múltiples veces. \(a_t\) pasa información de un paso al siguiente.
Figura 2
Arquitecturas Flexibles
Las RNN permiten procesar secuencias de longitudes variables en diferentes configuraciones.
Tipos:
Many-to-Many (\(T_x = T_y\)): Clasificación de entidades nombradas (NER), Generación de texto.
Many-to-One: Análisis de sentimiento, Clasificación de actividad.
One-to-Many: Generación de música, Captioning de imágenes (Input = Imagen CNN).